It is often desirable to migrate data from one data store to another. For example, it is often necessary to migrate data from a so-called legacy system to another system. However, such migrations can have many pitfalls. Data in a legacy system is generally in a format that is incompatible with a format required by the other system. Further, data in a legacy system may suffer from a lack of integrity, i.e., different fields of data in the legacy system may be inconsistent with one another, data in the legacy system may be missing or incorrect, etc. Moreover, data from one legacy system may not be compatible with data from a second legacy system, making it difficult to combine data from multiple legacy systems in a single target system.
Present data migrations are generally performed by extract, transform (or translate), and load (“ETL”) processes. Unfortunately, present ETL processes are generally inadequate to remedy data integrity problems in the legacy system. Further, present ETL processes may not detect all issues potentially arising from incompatible formats between a data source and a data target in a data migration scenario.